长大后想做什么?做回小孩!

0%

LeetCode——旋转图像

NO.48 旋转图像 中等

1gK3uQ.png

1gKQgS.png

思路一:先转置矩阵,再列对换 很好理解先将图像矩阵转置,再将转置之后的图像矩阵列对换就得到了顺时针旋转90°的效果。把示例在纸上模拟一下就很清楚了:

1RJS61.png

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public void rotate(int[][] matrix) {
if (matrix==null)return;
//转置矩阵
for (int i=0;i<matrix.length;i++){
for (int j=i;j<matrix[i].length;j++){
int temp=matrix[i][j];
matrix[i][j]=matrix[j][i];
matrix[j][i]=temp;
}
}
//列对换
for (int i=0;i<matrix.length/2;i++){
for (int j=0;j<matrix.length;j++){
int temp=matrix[j][i];
matrix[j][i]=matrix[j][matrix.length-1-i];
matrix[j][matrix.length-1-i]=temp;
}
}
}

时间复杂度:O(n^2)


本人菜鸟,有错误请告知,感激不尽!

更多题解和学习记录博客:博客github